﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;

public partial class MasterPageUTH : System.Web.UI.MasterPage
{
    controladorautenticacion atu;
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btnLogin_Click(object sender, EventArgs e)
    {
        atu = new controladorautenticacion();
        if (txtUsuario.Text != "" && txtPassword.Text!= "")
        {
            if (atu.autenricarusuario(txtUsuario.Text, txtPassword.Text) == true)
            {
                Session["NombreUsuario"] = atu.User.Username;
                Session["idUser"] = atu.User.Idlogin;
                
                // se inicia la autentificacion 
                FormsAuthentication.Initialize();
                //se manda llamar la funcion para asignar los roles segun usuario
                string Roles = this.asignarnomroll(atu.User.Nivusu);//regresa el nombre del tipo se usuario, Director, asistente, maestro
                //asignar el  tiempo de vida de la session inicializada
                FormsAuthenticationTicket fat = new FormsAuthenticationTicket(1, txtUsuario.Text, DateTime.Now, DateTime.Now.AddMinutes(40), false, Roles, FormsAuthentication.FormsCookiePath);
                //version, UsuarioLogueado, Fecha del Logue, Tiempo de Vida de la session en minutos, si es persistente, Los roles del usuario, el path de las cockies
                //generar la cookie
                Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(fat)));

                if (Roles == "Director") 
                {
                    Response.Redirect("Director/Reporte.aspx");
                }
                else if (Roles == "AsistenteDirector")
                {
                    Response.Redirect("AsistenteDirector/Grupo.aspx");
                }
                else 
                {
                    Response.Write("Error ");
                }
            }
            else
            {

                Response.Write("Usuario  o contraseña no coinciden");
            }
        }
        else 
        {
            Response.Write("Favor de escribir la contraseña o el nombre de usuario");
        }
    }

    private string asignarnomroll(int NivUsu) 
    {
        string nombre = "";
        if (NivUsu == 1) 
        {
            nombre = "Maestro";
        }
        else if(NivUsu == 2)
        {
            nombre = "AsistenteDirector";
        }
        else if (NivUsu == 3)
        {
            nombre = "Director";
        }
        return nombre;
    }
}
